from modules.exchange import Exchange, logger
import toml
from time import sleep

config = toml.load("config.toml")

api_settings = config.get('account',{})
trading_settings = config.get('trading', {})
visual_settings = config.get('visual', {})

api_settings['options']={
    'adjustForTimeDifference': True,
}


# Если не нашел, то будет значение по умолчанию
# SYMBOL = trading_settings.get('symbol','GRIMACE/USDT')

exchange = Exchange(api_settings, trading_settings, visual_settings)

def manual_loop():
    #try catch??
    while True:
        answer = input("\nEnter = checked | Space Enter = unchecked: ")
        if ' ' in answer:
            logger.info("UNCHECKED MANUAL")
            exchange.sell_buy(unchecked=True)
            #exchange.unchecked_sell_buy()
        else:
            logger.info("CHECKED MANUAL")
            exchange.sell_buy()

def auto_loop():
    while True:
        logger.info("AUTO START")
        exchange.sell_buy()
        logger.info(f"Sleep for {exchange.min_time} seconds")
        print()
        sleep(exchange.min_time)

def main():
    print("Manual checked / Auto mode / History? [ m / a / h ]")
    answer = input().lower()
    if answer == 'm':
        print("MANUAL MODE")
        try:
            manual_loop()
        except KeyboardInterrupt:
            print("\nExiting...")
    
    elif answer == 'a':
        auto_loop()
    
    elif answer == 'h':
        exchange.check_history()
        main()
    else:
        print("Wrong answer")

"""
Есть три режима:
Ручной - жмешь ентер - готовятся две транзы, проверяются условия можно или нельзя торговать и отправляется
Ручной без проверки - жмешь ентер, готовятся две транзы и отправляются БЕЗ ПРОВЕРОК
Автоматический - раз в какое-то время (из конфига) готовятся две транзы, проверяются условия можно или нельзя торговать и отправляется
"""
if __name__ == "__main__":
    main()

    









